package site.shihuan.helpdesk.auth.dao;

import org.springframework.stereotype.Repository;
import site.shihuan.helpdesk.auth.model.po.TenantJoinRequestPO;
import site.shihuan.helpdesk.auth.model.vo.TenantJoinVO;

import java.util.List;

/**
 * 加入请求(TenantJoinRequest)表数据库访问层
 *
 * @author 周世焕
 * @since 2021-03-28 14:30:09
 */
@Repository
public interface TenantJoinRequestDao {

    /**
     * 通过主键查询单条数据
     *
     * @param joinId
     * @return 影响行数
     */
    TenantJoinRequestPO selectByPrimaryKey(String joinId);

    /**
     * 新增数据
     *
     * @param tenantJoinRequest 实例对象
     * @return 影响行数
     */
    int insert(TenantJoinRequestPO tenantJoinRequest);

    /**
     * 新增数据（可选字段）
     *
     * @param tenantJoinRequest 实例对象
     * @return 影响行数
     */
    int insertSelective(TenantJoinRequestPO tenantJoinRequest);

    /**
     * 修改数据
     *
     * @param tenantJoinRequest 实例对象
     * @return 影响行数
     */
    int updateByPrimaryKey(TenantJoinRequestPO tenantJoinRequest);

    /**
     * 修改数据(可选字段)
     *
     * @param tenantJoinRequest 实例对象
     * @return 影响行数
     */
    int updateByPrimaryKeySelective(TenantJoinRequestPO tenantJoinRequest);

    /**
     * 通过主键删除数据
     *
     * @param joinId
     * @return 影响行数
     */
    int deleteByPrimaryKey(String joinId);

    /**
     * 查询租户下的申请列表
     * @param tenantId
     * @return
     */
    List<TenantJoinRequestPO> selectByTenantId(String tenantId);

    /**
    * 回应加入请求
    * @param tenantId
    * @param userIds
    * @param reply
    * @return
    */
    int joinReply(String tenantId, String[] userIds, Integer reply);

    /**
     * 查询用户提交的申请
     * @param userId
     * @return
     */
    List<TenantJoinVO> selectByUserId(String userId);
}
